package com.wjw.java.others.enum_;

/**
 * 枚举类：是一组常量的集合,它是一种特殊的类,里面只包含一组有限的特定的对象
 * ---------------------------------------------------------------------
 * 使用enum实现枚举类：
 * 1.使用关键字enum代替class,会默认继承java.lang.Enum类
 * 2.定义的常量对象,要求写在最上面,格式为:
 *   常量名(实参列表),多个常量对象使用逗号隔开
 * 3.构造器私有化
 * 4.只提供getter方法
 * ---------------------------------------------------------------------
 */
public enum Season {//1.枚举类
    //自定义的写法。
    //public static final SeasonClass SPRING = new SeasonClass("春天","温暖。");
    //2.枚举类写法
    SPRING("春天","温暖。"),//调用的有参构造
    SUMMER("夏天","炎热。"),
    AUTUMN("秋天","凉爽。"),
    WINTER("冬天","寒冷。"),
    WHAT();//调用的无参构造,可以省略()简写为WHAT
    private String name;//名称
    private String describe;//描述

    //3.
    private Season() {//private无参构造

    }
    private Season(String name, String describe) {//private有参构造
        this.name = name;
        this.describe = describe;
    }
    //4.
    public String getName() {
        return this.name;
    }
    public String getDescribe() {
        return this.describe;
    }

    @Override
    public String toString() {
        return "SeasonClass{" +
                "name='" + name + '\'' +
                ", describe='" + describe + '\'' +
                '}';
    }
}
